A system for storing software comprises an online software repository hosting code for software developers. The online software repository assists with project sharing, collaboration, version control, etc. When multiple developers are working on a single project, collisions in changes made simultaneously can be avoided by locking the repository as a change is being made (e.g., only allowing one write at a time). However, locking the repositories creates inefficiencies as the repositories are unavailable when locked for other processes wanting to make a change. As the system is used by an increasingly large number of software developers, more and more locking will increase the time the system is unavailable.